﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

using DevExpress.XtraGrid.Views.Grid;
using DevExpress.XtraGrid.Views.Grid.ViewInfo;

using MM.Entities;
using MM.Business;



namespace MM
{
    public partial class frmChinhsuaPhieuYC : Form
    {
        public List<CHI_TIET_PYC> lstCT = new List<CHI_TIET_PYC>();
        public List<VAT_TU_PHU_TUNG> lstVTPT = new List<VAT_TU_PHU_TUNG>();
        PHIEU_YEU_CAU pycObj = new PHIEU_YEU_CAU();
        string _matau = "";
        string _nguoitao = "";
        string _maphieuyeucau = "";
        string _sConn = "";
        frmTimKiemVTPT frm;
        frmTimKiemTheoHinh frm1;
        frmImpa_TimKiem frm2;
        frmImpa_TimKiemTheoHinh frm3;
       

        public frmChinhsuaPhieuYC(string maphieuyeucau,string sConn)
        {
            InitializeComponent();

            if (maphieuyeucau == "")
            {
                // tim thong tin phieu yeu cau gan nhat
                clsPHIEU_YEU_CAU pycCtrl = new clsPHIEU_YEU_CAU(sConn);
                List<PHIEU_YEU_CAU> lst = new List<PHIEU_YEU_CAU>();
                lst = pycCtrl.SelectPHIEU_YEU_CAU_MAX(_matau);
                if (lst.Count > 0)
                {
                    maphieuyeucau = lst[0].MaPhieuYeuCau;
                    pycObj = lst[0];
                    
                }
            }

            _maphieuyeucau = maphieuyeucau;
            _sConn = sConn;
            this.InitForm();
            this.InitLoaiPR();
            this.HienthiCHI_TIET_PYC();
            this.HienthiPHIEU_YEU_CAU();
            Common.SetColor(this);
        }

        public frmChinhsuaPhieuYC(string sConn)
        {
            InitializeComponent();

            string maphieuyeucau = "";
            // tim thong tin phieu yeu cau gan nhat
            clsPHIEU_YEU_CAU pycCtrl = new clsPHIEU_YEU_CAU(sConn);
            List<PHIEU_YEU_CAU> lst = new List<PHIEU_YEU_CAU>();
            lst = pycCtrl.SelectPHIEU_YEU_CAU_MAX(_matau);
            if (lst.Count > 0)
            {
                maphieuyeucau = lst[0].MaPhieuYeuCau;
                pycObj = lst[0];

            }

            _maphieuyeucau = maphieuyeucau;
            _sConn = sConn;
            this.InitForm();
            this.InitLoaiPR();
            this.HienthiPHIEU_YEU_CAU();
            this.HienthiCHI_TIET_PYC();            

            Common.SetColor(this);
        }
        private void InitForm()
        {
            _matau = frmDangNhap.objTau._tenTau2KiTu;
            _nguoitao = frmDangNhap.objTaiKhoan._soCMND;

            this.txtNgayThucHien.Text = DateTime.Today.Day.ToString() + "/" + DateTime.Today.Month.ToString() + "/" + DateTime.Today.Year.ToString();
            this.txtNguoiThucHien.Text = _nguoitao;
            dateEditNgayGiaoHang.DateTime = DateTime.Today;
            this.txtMaPhieuYeuCau.Text = _maphieuyeucau;
            

            this.gridControl1.DataSource = lstCT;
        }

        private void InitLoaiPR()
        {
            clsTRANG_THAI_VTPT ttCtrl = new clsTRANG_THAI_VTPT(_sConn);
            List<TRANG_THAI_VTPT> lst = new List<TRANG_THAI_VTPT>();
            lst = ttCtrl.usp_SelectTRANG_THAI_VTPTsAll();
            lst.RemoveAll(delegate(TRANG_THAI_VTPT x) { return x.MaTrangThai >= 2; });
            this.cboLoaiPR.DataSource = lst;
            this.cboLoaiPR.DisplayMember = "TenTrangThai";
            this.cboLoaiPR.ValueMember = "MaTrangThai";
        }

        private void HienthiCHI_TIET_PYC()
        {
                        
            
            clsCHI_TIET_PYC ctCtrl = new clsCHI_TIET_PYC(_sConn);

            lstCT = ctCtrl.SelectCHI_TIET_PYCByMaPhieuYeuCau(_maphieuyeucau);            

            //lstCT.RemoveAll(delegate(CHI_TIET_PYC x) { return x.TinhTrang == 1; });

            this.gridControl1.DataSource = lstCT;
        }
        private void HienthiPHIEU_YEU_CAU()
        {
            clsPHIEU_YEU_CAU pycCtrl = new clsPHIEU_YEU_CAU(_sConn);
            List<PHIEU_YEU_CAU> lst = new List<PHIEU_YEU_CAU>();
            lst = pycCtrl.SelectPHIEU_YEU_CAU(_maphieuyeucau);
            if (lst.Count > 0)
            {
                this.txtMaVTPT.Text = "";
                this.txtSoLuong.Text = "";
                this.cboLoaiPR.SelectedIndex = 0;
                this.cmdPhucHoiXoa.Visible = false;

                this.txtMaPhieuYeuCau.Text = lst[0].MaPhieuYeuCau;
                this.txtNguoiThucHien.Text = lst[0].NguoiTao;
                this.txtNgayThucHien.Text = lst[0].NgayTao.Day.ToString() + "/" + lst[0].NgayTao.Month.ToString() + "/" + lst[0].NgayTao.Year.ToString();
                pycObj = lst[0];

                if (pycObj.DaDuyet == 1 || pycObj.TinhTrang == 1)// daduyet or daxoa
                {
                    this.cmdCapNhatSL.Enabled = false;
                    this.cmdThemVTPT.Enabled = false;
                    this.cmdXoaVTPT.Enabled = false;

                }
                else
                {
                    this.cmdCapNhatSL.Enabled = true;
                    this.cmdThemVTPT.Enabled = true;
                    this.cmdXoaVTPT.Enabled = true;

                }

                if (pycObj.DaDuyet == 1)
                {
                    chkDaDuyet.Checked = true;
                    this.cmdLuu.Enabled = false;
                }
                else
                {
                    chkDaDuyet.Checked = false;
                    this.cmdLuu.Enabled = true;
                }

                if (pycObj.TinhTrang == 1)
                    chkXoa.Checked = true;
                else
                    chkXoa.Checked = false;
            }
            else
            {
                this.txtMaVTPT.Text = "";
                this.txtSoLuong.Text = "";
                this.cboLoaiPR.SelectedIndex = 0;
                this.txtMaPhieuYeuCau.Text = "";
                this.txtNguoiThucHien.Text = "";
                this.txtNgayThucHien.Text = "";
                chkDaDuyet.Checked = false;
                this.cmdLuu.Enabled = false;
                chkXoa.Checked = false;

                this.cmdCapNhatSL.Enabled = false;
                this.cmdPhucHoiXoa.Enabled = false;
                this.cmdXoaVTPT.Enabled = false;
                this.cmdThemVTPT.Enabled = false;
            }
        }

        private void cmdThemVTPT_Click(object sender, EventArgs e)
        {
            try
            {
                // kiểm tra dữ liệu về Số Lượng và Ngày giao hàng
                if (int.Parse(this.txtSoLuong.Text) <= 0)
                {
                    MessageBox.Show("Vui lòng nhập đúng số lượng");
                    return;
                }
                //if (dateEditNgayGiaoHang.DateTime <= DateTime.Today)
                //{
                //    MessageBox.Show("Ngày giao hàng phải lớn hơn ngày hiện tại");
                //    return;
                //}
                if ((int)cboLoaiPR.SelectedValue == -1)
                {
                    MessageBox.Show("Chọn Trạng thái vật tư phụ tùng");
                    return;
                }
                this.cmdLuu.Enabled = true;
                CHI_TIET_PYC objCT = new CHI_TIET_PYC();
                clsCHI_TIET_PYC ctCtrl = new clsCHI_TIET_PYC(_sConn);
                if (lstVTPT.Count == 0 && this.txtMaVTPT.Text != "") // người dùng tự điền mã
                {
                    
                    // kiểm tra tồn tại của VTPT                   
                    clsVAT_TU_PHU_TUNG vtptCtrl = new clsVAT_TU_PHU_TUNG(_sConn);
                    VAT_TU_PHU_TUNG obj = new VAT_TU_PHU_TUNG();
                    obj._maVTPT = this.txtMaVTPT.Text.Trim();
                    obj = vtptCtrl.SelectVAT_TU_PHU_TUNG(obj._maVTPT,frmDangNhap.objTau.maTau);

                    if (obj == null || obj._maVTPT == "")
                    {
                        MessageBox.Show("KHÔNG TỒN TẠI VTPT NÀY");
                        return;
                    }
                    else
                        this.lblTenVTPT.Text = obj._tenVTPT;

                    objCT.STT = lstCT.Count + 1;
                    objCT.MaThietBi = obj._maVTPT;
                    objCT.TenVTPT = obj._tenVTPT;
                    objCT.SoLuong = float.Parse(this.txtSoLuong.Text);
                    objCT.NgayGiaoHang = dateEditNgayGiaoHang.DateTime;
                    objCT.oTRANG_THAI_VTPT.MaTrangThai = int.Parse(cboLoaiPR.SelectedValue.ToString());
                    objCT.oTRANG_THAI_VTPT.TenTrangThai = cboLoaiPR.Text;
                    objCT.MaPhieuYeuCau = _maphieuyeucau;
                    objCT.NguoiTao = _nguoitao;
                    objCT.NgayTao = DateTime.Today;
                    objCT.GhiChu = this.txtGhiChu.Text;
                    
                    // Kiem tra đã tồn tại trong danh sách
                    int index = -1;
                    index = lstCT.FindIndex(delegate(CHI_TIET_PYC x) { return x.MaThietBi == objCT.MaThietBi && x.MaTrangThai==objCT.MaTrangThai ; });
                    if (index >= 0)
                    {
                        if (lstCT[index].TinhTrang == 1)// da duoc xoa
                        {
                            MessageBox.Show("ĐÃ TỒN TẠI VTPT NÀY BỊ XÓA TRONG DANH SÁCH\nVUI LÒNG VÀO CHỨC NĂNG PHỤC HỒI XÓA");
                            this.gridDSVT.FocusedRowHandle = index;
                        }
                        else
                        {
                            // cap nhat vào csdl
                            lstCT[index].SoLuong += objCT.SoLuong;
                            lstCT[index].NgayTao = DateTime.Today;
                            lstCT[index].NguoiTao = _nguoitao;
                            
                            lstCT[index].ThaoTac = "U";
                        }
                    }
                    else
                    {
                        // them vao csdl 
                        lstCT.Add(objCT);
                        lstCT[lstCT.Count-1].ThaoTac = "I";
                      
                    }

                    this.txtMaVTPT.Text = "";
                    this.txtSoLuong.Text = "";

                }
                else
                {
                    for (int i = 0; i < lstVTPT.Count; i++)
                    {
                        objCT = new CHI_TIET_PYC();
                        objCT.STT = lstCT.Count + 1;
                        objCT.MaThietBi = lstVTPT[i]._maVTPT;
                        objCT.TenVTPT = lstVTPT[i]._tenVTPT;
                        objCT.SoLuong = float.Parse(this.txtSoLuong.Text);
                        objCT.NgayGiaoHang = dateEditNgayGiaoHang.DateTime;
                        objCT.oTRANG_THAI_VTPT.MaTrangThai = int.Parse(cboLoaiPR.SelectedValue.ToString());
                        objCT.oTRANG_THAI_VTPT.TenTrangThai = cboLoaiPR.Text;
                        objCT.NgayTao = DateTime.Today;
                        objCT.NguoiTao = _nguoitao;
                        objCT.MaPhieuYeuCau = _maphieuyeucau;
                        objCT.GhiChu = this.txtGhiChu.Text;

                        // Kiem tra đã tồn tại trong danh sách
                        int index = -1;
                        index = lstCT.FindIndex(delegate(CHI_TIET_PYC x) { return x.MaThietBi == objCT.MaThietBi; });
                        if (index >= 0)
                        {
                            if (lstCT[index].TinhTrang == 1)// da duoc xoa
                            {
                                MessageBox.Show("ĐÃ TỒN TẠI VTPT " + objCT.MaThietBi+"-"+objCT.TenVTPT + "  BỊ XÓA TRONG DANH SÁCH\nVUI LÒNG VÀO CHỨC NĂNG PHỤC HỒI XÓA");                                
                            }
                            // cap nhat vào csdl
                            lstCT[index].SoLuong += objCT.SoLuong;
                            lstCT[index].NgayTao = DateTime.Today;
                            lstCT[index].NguoiTao = _nguoitao;
                            lstCT[index].ThaoTac = "U";
                          
                        }
                        else
                        {
                            // them vao csdl 
                            lstCT.Add(objCT);
                            lstCT[lstCT.Count-1].ThaoTac = "I";
                          
                        }
                        
                    }

                   
                    this.txtSoLuong.Text = "";

                }

                //this.HienthiCHI_TIET_PYC(); 
                this.gridControl1.RefreshDataSource();
               
            }
            catch (Exception ex)
            {
                MessageBox.Show("VUI LÒNG ĐIỀN ĐẦY ĐỦ THÔNG TIN: MÃ VTPT - SỐ LƯỢNG - NGÀY GIAO HÀNG - TRẠNG THÁI");
            }
        }

       

        private void gridDSVT_Click(object sender, EventArgs e)
        {
            try
            {
                GridView view = (GridView)sender;
                GridHitInfo info = view.CalcHitInfo(gridControl1.PointToClient(MousePosition));

                if (info.InRow || info.InRowCell)
                {
                    if (lstCT[info.RowHandle].TinhTrang == 1 && chkXoa.Checked==false)// xoa
                    {
                        if (lstCT[info.RowHandle].ThaoTac == "" || lstCT[info.RowHandle].ThaoTac == "U")
                            this.cmdPhucHoiXoa.Visible = true;
                        else
                        {
                            if (lstCT[info.RowHandle].ThaoTac == "D")// 
                                this.cmdPhucHoiXoa.Visible = true;
                            else
                                this.cmdPhucHoiXoa.Visible = false;
                        }
                    }
                    else
                    {
                        this.cmdPhucHoiXoa.Visible = false;
                        if (lstCT[info.RowHandle].ThaoTac == "D")
                            this.cmdPhucHoiXoa.Visible = true;
                    }
                    this.txtMaVTPT.Text = lstCT[info.RowHandle].MaThietBi;
                    this.lblTenVTPT.Text = lstCT[info.RowHandle].TenVTPT;
                    this.txtSoLuong.Text = lstCT[info.RowHandle].SoLuong.ToString();
                    this.dateEditNgayGiaoHang.DateTime = lstCT[info.RowHandle].NgayGiaoHang;
                    this.cboLoaiPR.SelectedValue = lstCT[info.RowHandle].MaTrangThai;
                    this.txtGhiChu.Text = lstCT[info.RowHandle].GhiChu;
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }

        private void cmdCapNhatSL_Click(object sender, EventArgs e)
        {
            try
            {
                if (gridDSVT.FocusedRowHandle >= 0)
                {
                    //if (lstCT[gridDSVT.FocusedRowHandle].MaChiTiet > 0 ) // vtpt da ton tai
                    {
                        if (lstCT[gridDSVT.FocusedRowHandle].TinhTrang == 1)// da bi xoa
                        {
                            MessageBox.Show("VUI LÒNG PHỤC HỒI XÓA TRƯỚC KHI CẬP NHẬT");
                            return;
                        }
                        try
                        {
                            float sl = float.Parse(this.txtSoLuong.Text);
                        }
                        catch
                        {
                            MessageBox.Show("VUI LÒNG NHẬP SỐ LƯỢNG THEO KIỂU SỐ");
                            return;
                        }

                        if (float.Parse(this.txtSoLuong.Text) <= 0)
                        {
                            MessageBox.Show("Vui lòng nhập đúng số lượng");
                            return;
                        }

                        this.cmdLuu.Enabled = true;

                        if (lstCT[gridDSVT.FocusedRowHandle].MaThietBi == this.txtMaVTPT.Text.Trim())
                        {
                            lstCT[gridDSVT.FocusedRowHandle].SoLuong = float.Parse(this.txtSoLuong.Text);
                            lstCT[gridDSVT.FocusedRowHandle].NgayGiaoHang = dateEditNgayGiaoHang.DateTime;
                            lstCT[gridDSVT.FocusedRowHandle].NgayTao = DateTime.Today;
                            lstCT[gridDSVT.FocusedRowHandle].NguoiTao = _nguoitao;
                            lstCT[gridDSVT.FocusedRowHandle].oTRANG_THAI_VTPT.MaTrangThai = int.Parse(cboLoaiPR.SelectedValue.ToString());
                            lstCT[gridDSVT.FocusedRowHandle].oTRANG_THAI_VTPT.TenTrangThai = cboLoaiPR.Text;
                            lstCT[gridDSVT.FocusedRowHandle].GhiChu = this.txtGhiChu.Text;

                            lstCT[gridDSVT.FocusedRowHandle].PreThaoTac = lstCT[gridDSVT.FocusedRowHandle].ThaoTac;
                            
                            if (lstCT[gridDSVT.FocusedRowHandle].MaChiTiet > 0 ) // DA TON TAI VTPT
                                lstCT[gridDSVT.FocusedRowHandle].ThaoTac = "U";
                            else
                                lstCT[gridDSVT.FocusedRowHandle].ThaoTac = "I";
                            this.gridControl1.RefreshDataSource();
                            
                        }
                        else
                            MessageBox.Show("VUI LÒNG CLICK CHỌN DÒNG VTPT CẦN CẬP NHẬT THÔNG TIN");
                    }
                 
                }
                else
                    MessageBox.Show("Vui lòng chọn dòng có VTPT cần thay đổi thông tin ");
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }

        private void cmdXoaVTPT_Click(object sender, EventArgs e)
        {
            try
            {
                if (gridDSVT.FocusedRowHandle >= 0 )
                {
                    if (MessageBox.Show("Bạn có thật sự muốn Xóa ?", "Thông báo", MessageBoxButtons.YesNo) == DialogResult.Yes)
                    {
                        try
                        {
                            lstCT[gridDSVT.FocusedRowHandle].SoLuong = float.Parse(this.txtSoLuong.Text);
                        }
                        catch
                        {
                            MessageBox.Show("VUI LÒNG CLICK CHỌN VÀO VTPT CẦN XÓA");
                            return;
                        }

                        this.cmdLuu.Enabled = true;

                        lstCT[gridDSVT.FocusedRowHandle].NgayGiaoHang = dateEditNgayGiaoHang.DateTime;                        
                        lstCT[gridDSVT.FocusedRowHandle].NgayTao = DateTime.Today;
                        lstCT[gridDSVT.FocusedRowHandle].NguoiTao = _nguoitao;
                        lstCT[gridDSVT.FocusedRowHandle].oTRANG_THAI_VTPT.MaTrangThai = int.Parse(cboLoaiPR.SelectedValue.ToString());
                        lstCT[gridDSVT.FocusedRowHandle].oTRANG_THAI_VTPT.TenTrangThai = cboLoaiPR.Text;

                        lstCT[gridDSVT.FocusedRowHandle].PreThaoTac=lstCT[gridDSVT.FocusedRowHandle].ThaoTac;

                        if (lstCT[gridDSVT.FocusedRowHandle].ThaoTac == "U" && lstCT[gridDSVT.FocusedRowHandle].TinhTrang==1)
                            lstCT[gridDSVT.FocusedRowHandle].ThaoTac = "";
                        else
                            lstCT[gridDSVT.FocusedRowHandle].ThaoTac = "D";
                        this.gridControl1.RefreshDataSource();
                        this.cmdPhucHoiXoa.Visible = true;

                        // cập nhật CSDL
                        //clsCHI_TIET_PYC ctCtrl = new clsCHI_TIET_PYC(_sConn);
                        //if (ctCtrl.usp_UpdateCHI_TIET_PYC(lstCT[gridDSVT.FocusedRowHandle]) > 0)
                        //{
                        //    lstCT.RemoveAt(gridDSVT.FocusedRowHandle);
                        //    this.gridControl1.RefreshDataSource();

                        //    if (lstCT.Count == 0)// danh dau xoa luon phieu yeu cau
                        //    {
                        //        if (MessageBox.Show("DANH SÁCH CHI TIẾT CÁC VTPT YÊU CẦU ĐẶT MUA ĐÃ XÓA !\n BẠN CÓ MUỐN XÓA CẢ PHIẾU YÊU CẦU: " + pycObj.MaPhieuYeuCau + " ?", "THÔNG BÁO", MessageBoxButtons.YesNo) == DialogResult.Yes)
                        //        {
                        //            clsPHIEU_YEU_CAU pycCtrl = new clsPHIEU_YEU_CAU(_sConn);
                        //            pycObj.TinhTrang = 1;
                        //            if (pycCtrl.usp_UpdatePHIEU_YEU_CAU(pycObj) > 0)
                        //            {
                        //                this.chkXoa.Checked = true;
                        //            }
                        //        }
                        //    }
                        //}
                        //else
                        //    MessageBox.Show("CẬP NHẬT CSDL KHÔNG THÀNH CÔNG");
                    }
                    
                }
                else
                    MessageBox.Show("Vui lòng chọn dòng có VTPT cần XÓA ");
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }

        private void txtMaPhieuYeuCau_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter)
            {
                _maphieuyeucau = this.txtMaPhieuYeuCau.Text.Trim();
                this.HienthiPHIEU_YEU_CAU();
                this.HienthiCHI_TIET_PYC();

                
            }
        }

        private void lnkPhieuYC_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
            frmTimPhieuYC f = new frmTimPhieuYC(_sConn);
            f.chonPYC += new frmTimPhieuYC.ChonPhieuYeuCau(GetPhieuYeuCau);
            f.Show(this);
        }

        private void GetPhieuYeuCau(object sender, ChonPhieuYCEventArgs e)
        {
            _maphieuyeucau = e.MaPhieuYeuCau;

            this.HienthiPHIEU_YEU_CAU();
            this.HienthiCHI_TIET_PYC();           
            
        }

        private void cmdTimVTPT_Click(object sender, EventArgs e)
        {
                        
            if (lstVTPT.Count == 0)
                frm = new frmTimKiemVTPT(_sConn);
            frm.SelectLstMaterial += new frmTimKiemVTPT.SelectListMaterialHandler(LuuDSVTPT);
            frm.ShowDialog();
            if (lstVTPT.Count > 0)
            {
                if (lstVTPT.Count == 1)
                {
                    this.txtMaVTPT.Text = lstVTPT[0]._maVTPT;
                    this.lblTenVTPT.Text = lstVTPT[0]._tenVTPT;
                }
                else
                    MessageBox.Show("Có " + lstVTPT.Count.ToString() + " VTPT đang được chọn!\nVui lòng Bấm nút THÊM VÀO DS để đưa các VTPT vừa tìm kiếm vào Danh sách đặt hàng");
            }
        }

        private void LuuDSVTPT(object sender, lstVtptEventArgs e)
        {
            lstVTPT = e.lstVtpt;
        }

        private void frmChinhsuaPhieuYC_KeyDown(object sender, KeyEventArgs e)
        {
            if (pycObj.DaDuyet == 0 && pycObj.TinhTrang == 0)// chua duyet va chua xoa
            {
                if (e.Control && e.KeyCode == Keys.F) // tim phieu yeu cau
                {
                    lnkPhieuYC_LinkClicked(null, null);
                }
                else
                    if (e.Control && e.KeyCode == Keys.I) // them moi
                    {
                        cmdThemVTPT_Click(null, null);
                    }
                    else
                        if (e.Control && e.KeyCode == Keys.U) // cap nhat
                        {
                            cmdCapNhatSL_Click(null, null);
                        }
                        else
                            if (e.Control && e.KeyCode == Keys.D) // xoa
                            {
                                cmdXoaVTPT_Click(null, null);
                            }
            }

        }

        private void tìmTheoNhiềuTiêuChíToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (lstVTPT.Count == 0)
            {
                frm = new frmTimKiemVTPT(_sConn,true);
                frm.SelectLstMaterial += new frmTimKiemVTPT.SelectListMaterialHandler(LuuDSVTPT);
            }
            else
                lstVTPT.Clear();
            frm.ShowDialog();
            if (lstVTPT.Count > 0)
            {
                if (lstVTPT.Count == 1)
                {
                    this.txtMaVTPT.Text = lstVTPT[0]._maVTPT;
                    this.lblTenVTPT.Text = lstVTPT[0]._tenVTPT;
                }
                else
                    MessageBox.Show("Có " + lstVTPT.Count.ToString() + " VTPT đang được chọn!\nVui lòng Bấm nút THÊM VÀO DS để đưa các VTPT vừa tìm kiếm vào Danh sách đặt hàng");
            }
        }

        private void tìmTheoHìnhToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (lstVTPT.Count == 0)
            {
                frm1 = new frmTimKiemTheoHinh(_sConn,true);
                frm1.SelectLstMaterialByImg += new frmTimKiemTheoHinh.SelectListMaterialByImgHandler(LuuDSVTPT);
            }
            else
                lstVTPT.Clear();
            frm1.ShowDialog();
            if (lstVTPT.Count > 0)
            {
                if (lstVTPT.Count == 1)
                {
                    this.txtMaVTPT.Text = lstVTPT[0]._maVTPT;
                    this.lblTenVTPT.Text = lstVTPT[0]._tenVTPT;
                }
                else
                    MessageBox.Show("Có " + lstVTPT.Count.ToString() + " VTPT đang được chọn!\nVui lòng Bấm nút THÊM VÀO DS để đưa các VTPT vừa tìm kiếm vào Danh sách đặt hàng");
            }
        }
        

        private void cmdLuu_Click(object sender, EventArgs e)
        {
            if (MessageBox.Show("Bạn có thật sự muốn LƯU những thay đổi?", "Thông báo", MessageBoxButtons.YesNoCancel) == DialogResult.Yes)
            {
                if (this.txtMaPhieuYeuCau.Text.Length != 10)
                {
                    MessageBox.Show("LƯU KHÔNG THÀNH CÔNG! SỐ PHIẾU YÊU CẦU KHÔNG HỢP LỆ");
                    return;
                }
                int kq=-1;
                clsCHI_TIET_PYC ctCtrl = new clsCHI_TIET_PYC(_sConn);
                clsPHIEU_YEU_CAU pycCtrl = new clsPHIEU_YEU_CAU(_sConn);
                // cap nhat Phieu yeu cau
                if (pycObj.TinhTrang == 1 && chkXoa.Checked == false) // phuc hoi phieu
                {
                    pycCtrl.usp_UpdatePHIEU_YEU_CAU_PhucHoiXoa(pycObj);

                    // cap nhat Chi tiet phieu yeu cau
                    for (int i = 0; i < lstCT.Count; i++)
                    {
                        if (lstCT[i].ThaoTac != "")
                        {
                            kq = -1;
                            if (lstCT[i].ThaoTac == "U" || lstCT[i].ThaoTac == "D")
                            {
                                if (lstCT[i].ThaoTac == "D")
                                    lstCT[i].TinhTrang = 1;
                                else
                                    lstCT[i].TinhTrang = 0;
                                kq = ctCtrl.usp_UpdateCHI_TIET_PYC(lstCT[i]);

                            }
                            else
                                if (lstCT[i].ThaoTac == "I")
                                {
                                    kq = ctCtrl.usp_InsertCHI_TIET_PYC(lstCT[i]);
                                }
                            if (kq > 0)
                                lstCT[i].ThaoTac = "";
                        }
                    }
                }
                else
                {
                    if (pycObj.TinhTrang == 0 && chkXoa.Checked == false) // chinh sua chi tiet
                    {
                        // cap nhat Chi tiet phieu yeu cau
                        for (int i = 0; i < lstCT.Count; i++)
                        {
                            if (lstCT[i].ThaoTac != "")
                            {
                                kq = -1;
                                if (lstCT[i].ThaoTac == "U" || lstCT[i].ThaoTac == "D" || lstCT[i].ThaoTac == "R")
                                {
                                    if (lstCT[i].ThaoTac == "D")
                                        lstCT[i].TinhTrang = 1;
                                    else
                                        lstCT[i].TinhTrang = 0;
                                    kq = ctCtrl.usp_UpdateCHI_TIET_PYC(lstCT[i]);

                                }
                                else
                                    if (lstCT[i].ThaoTac == "I")
                                    {
                                        kq = ctCtrl.usp_InsertCHI_TIET_PYC(lstCT[i]);
                                    }
                                if (kq > 0)
                                    lstCT[i].ThaoTac = "";
                                else
                                {
                                    MessageBox.Show("LƯU KHÔNG THÀNH CÔNG");
                                    break;
                                }
                            }
                        }
                    }
                    else //pycObj.TinhTrang == 0 && chkXoa.Checked == true muon xoa phieu yeu cau
                    {
                        pycCtrl.usp_UpdatePHIEU_YEU_CAU_Xoa(pycObj);
                    }
                }

                this.HienthiCHI_TIET_PYC();
                this.HienthiPHIEU_YEU_CAU();
            }
            else
            {
                this.HienthiCHI_TIET_PYC();
                this.HienthiPHIEU_YEU_CAU();
            }

            this.cmdLuu.Enabled = false;
        }

        private void gridDSVT_RowStyle(object sender, RowStyleEventArgs e)
        {
            GridView View = sender as GridView;
            if (e.RowHandle >= 0)
            {
                
                string thaotac = View.GetRowCellDisplayText(e.RowHandle, "ThaoTac").ToString().Trim();
                string prethaotac = View.GetRowCellDisplayText(e.RowHandle, "PreThaoTac").ToString().Trim();
                string tinhtrang=View.GetRowCellDisplayText(e.RowHandle, "TinhTrang").ToString().Trim();

                
                
                if (thaotac != "" || tinhtrang == "1")
                {
                    if (thaotac == "D" || (tinhtrang == "1" && thaotac == ""))
                    {
                        e.Appearance.BackColor = Color.Gray;
                        gridDSVT.OptionsSelection.EnableAppearanceFocusedRow = false;
                    }
                    else
                    {
                        if (thaotac == "R" ) // phục hồi Xóa
                        {
                            if (prethaotac == "U")
                            {
                                e.Appearance.BackColor = Color.ForestGreen;
                                gridDSVT.OptionsSelection.EnableAppearanceFocusedRow = false;
                            }
                            else
                            {
                                e.Appearance.BackColor = Color.White;
                                gridDSVT.OptionsSelection.EnableAppearanceFocusedRow = false;
                            }
                        }
                        else
                        {
                            e.Appearance.BackColor =  Color.ForestGreen;
                            gridDSVT.OptionsSelection.EnableAppearanceFocusedRow = false;
                        }


                    }
                }

            }
        }

        private void chkXoa_Click(object sender, EventArgs e)
        {
            if (chkDaDuyet.Checked == false)
            {
                clsPHIEU_YEU_CAU pycCtrl = new clsPHIEU_YEU_CAU(_sConn);
                if (chkXoa.Checked == false) // phục hồi xóa
                {
                    if (MessageBox.Show("Bạn muốn phục hồi Phiếu yêu cầu ?", "Thông báo", MessageBoxButtons.YesNoCancel) == DialogResult.Yes)
                    {
                        
                        pycObj.NgayTao = DateTime.Today;
                        pycObj.NguoiTao = _nguoitao;
                       
                        //if (pycCtrl.usp_UpdatePHIEU_YEU_CAU_PhucHoiXoa(pycObj) > 0)
                        //{                            
                        //    MessageBox.Show("PHỤC HỒI PHIẾU YÊU CẦU THÀNH CÔNG");
                        //    this.HienthiCHI_TIET_PYC();
                        //    this.HienthiPHIEU_YEU_CAU();
                        //}

                        if (pycObj.TinhTrang == 1)// da xoa
                        {
                            for (int i = 0; i < lstCT.Count; i++)
                            {
                                lstCT[i].ThaoTac = "R";                                
                                lstCT[i].NgayTao = DateTime.Today;
                                lstCT[i].NguoiTao = _nguoitao;
                            }
                        }
                        else
                        {
                            for (int i = 0; i < lstCT.Count; i++)
                            {
                                lstCT[i].ThaoTac = lstCT[i].PreThaoTac;
                                if (lstCT[i].TinhTrang==1)
                                    lstCT[i].ThaoTac = "R";
                                lstCT[i].NgayTao = DateTime.Today;
                                lstCT[i].NguoiTao = _nguoitao;
                            }
                        }
                        this.cmdCapNhatSL.Enabled = true;
                        this.cmdThemVTPT.Enabled = true;
                        this.cmdXoaVTPT.Enabled = true;

                        this.cmdLuu.Enabled = true;
                    }
                    else
                        chkXoa.Checked = true;
                }
                else // muốn xóa cả phiếu
                {
                    if (MessageBox.Show("Bạn có thật sự muốn Xóa Phiếu yêu cầu ?", "Thông báo", MessageBoxButtons.YesNoCancel) == DialogResult.Yes)
                    {
                       
                        pycObj.NgayTao = DateTime.Today;
                        pycObj.NguoiTao = _nguoitao;
                        //if (pycCtrl.usp_UpdatePHIEU_YEU_CAU_Xoa(pycObj) > 0)
                        //{                          
                        //    MessageBox.Show("XÓA PHIẾU YÊU CẦU THÀNH CÔNG");
                        //    this.HienthiCHI_TIET_PYC();
                        //    this.HienthiPHIEU_YEU_CAU();
                        //}

                        if (pycObj.TinhTrang == 0)
                        {
                            for (int i = 0; i < lstCT.Count; i++)
                            {
                                lstCT[i].PreThaoTac = lstCT[i].ThaoTac;
                                lstCT[i].ThaoTac = "D";
                                lstCT[i].NgayTao = DateTime.Today;
                                lstCT[i].NguoiTao = _nguoitao;
                            }
                        }
                        else
                        {
                            for (int i = 0; i < lstCT.Count; i++)
                            {
                                lstCT[i].PreThaoTac = lstCT[i].ThaoTac;
                                lstCT[i].ThaoTac = "";
                                lstCT[i].NgayTao = DateTime.Today;
                                lstCT[i].NguoiTao = _nguoitao;
                            }
                        }

                        this.cmdCapNhatSL.Enabled = false;
                        this.cmdThemVTPT.Enabled = false;
                        this.cmdXoaVTPT.Enabled = false;
                        this.cmdPhucHoiXoa.Enabled = false;

                        this.cmdLuu.Enabled = true;
                    }
                    else
                        chkXoa.Checked = false;
                }
                this.gridControl1.RefreshDataSource();
            }
            else
            {
                MessageBox.Show("PHIẾU ĐÃ ĐƯỢC DUYỆT. BẠN KHÔNG THỂ XÓA");
                chkXoa.Checked = false;
            }
        }

        private void cmdPhucHoiXoa_Click(object sender, EventArgs e)
        {
            try
            {
                if (gridDSVT.FocusedRowHandle >= 0)
                {
                    if (MessageBox.Show("Bạn có thật sự muốn Phục hồi Xóa ?", "Thông báo", MessageBoxButtons.YesNo) == DialogResult.Yes)
                    {                      

                        this.cmdLuu.Enabled = true;

                        lstCT[gridDSVT.FocusedRowHandle].NgayGiaoHang = dateEditNgayGiaoHang.DateTime;                        
                        lstCT[gridDSVT.FocusedRowHandle].NgayTao = DateTime.Today;
                        lstCT[gridDSVT.FocusedRowHandle].NguoiTao = _nguoitao;
                        lstCT[gridDSVT.FocusedRowHandle].oTRANG_THAI_VTPT.MaTrangThai = int.Parse(cboLoaiPR.SelectedValue.ToString());
                        lstCT[gridDSVT.FocusedRowHandle].oTRANG_THAI_VTPT.TenTrangThai = cboLoaiPR.Text;
                        
                        
                        lstCT[gridDSVT.FocusedRowHandle].ThaoTac = "R";

                        if (lstCT[gridDSVT.FocusedRowHandle].MaChiTiet==0) // chua co trong csdl
                            lstCT[gridDSVT.FocusedRowHandle].ThaoTac = "I";
                        else
                            if (lstCT[gridDSVT.FocusedRowHandle].TinhTrang == 0)
                                lstCT[gridDSVT.FocusedRowHandle].ThaoTac = lstCT[gridDSVT.FocusedRowHandle].PreThaoTac;
                        this.gridControl1.RefreshDataSource();
                        this.cmdPhucHoiXoa.Visible = false;
                        
                    }

                }
                else
                    MessageBox.Show("Vui lòng chọn dòng có VTPT cần XÓA ");
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }

        private void frmChinhsuaPhieuYC_FormClosing(object sender, FormClosingEventArgs e)
        {
            for (int i = 0; i < lstCT.Count; i++)
            {
                if (lstCT[i].ThaoTac != "")
                {
                    if (MessageBox.Show("BẠN CHƯA LƯU THÔNG TIN PHIẾU YÊU CẦU!\n BẠN VẪN MUỐN THOÁT", "THÔNG BÁO", MessageBoxButtons.YesNo) == DialogResult.Yes)
                    {
                        e.Cancel = false;
                        return;
                    }
                    else
                    {
                        e.Cancel = true;
                        return;
                    }
                }
            }            
        }

        private void gridDSVT_FocusedRowChanged(object sender, DevExpress.XtraGrid.Views.Base.FocusedRowChangedEventArgs e)
        {
            try
            {
                
                int index = e.FocusedRowHandle;
                if (index>=0)
                {
                    if (lstCT[index].TinhTrang == 1 && chkXoa.Checked == false)// xoa
                    {
                        if (lstCT[index].ThaoTac == "" || lstCT[index].ThaoTac == "U")
                            this.cmdPhucHoiXoa.Visible = true;
                        else
                        {
                            if (lstCT[index].ThaoTac == "D")// 
                                this.cmdPhucHoiXoa.Visible = true;
                            else
                                this.cmdPhucHoiXoa.Visible = false;
                        }
                    }
                    else
                    {
                        this.cmdPhucHoiXoa.Visible = false;
                        if (lstCT[index].ThaoTac == "D")
                            this.cmdPhucHoiXoa.Visible = true;
                    }
                    this.txtMaVTPT.Text = lstCT[index].MaThietBi;
                    this.lblTenVTPT.Text = lstCT[index].TenVTPT;
                    this.txtSoLuong.Text = lstCT[index].SoLuong.ToString();
                    this.dateEditNgayGiaoHang.DateTime = lstCT[index].NgayGiaoHang;
                    this.cboLoaiPR.SelectedValue = lstCT[index].MaTrangThai;
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }

        private void tìmVTIMPATheoNhiềuTiêuChíToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (frm2 == null)
            {
                frm2 = new frmImpa_TimKiem(_sConn,true);
                frm2.SelectLstMaterial += new frmImpa_TimKiem.SelectListMaterialHandler(LuuDSVTPT);
            }
            else
                lstVTPT.Clear();
            frm2.ShowDialog();
            if (lstVTPT.Count > 0)
            {
                if (lstVTPT.Count == 1)
                {
                    this.txtMaVTPT.Text = lstVTPT[0]._maVTPT;
                    this.lblTenVTPT.Text = lstVTPT[0]._tenVTPT;
                }
                else
                    MessageBox.Show("Có " + lstVTPT.Count.ToString() + " VTPT đang được chọn!\nVui lòng Bấm nút THÊM VÀO DS để đưa các VTPT vừa tìm kiếm vào Danh sách đặt hàng");

            }
        }

        private void tìmVTIMPATheoHìnhToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (frm3 == null)
            {
                frm3 = new frmImpa_TimKiemTheoHinh(_sConn,true);
                frm3.SelectLstMaterial += new frmImpa_TimKiemTheoHinh.SelectListMaterialHandler(LuuDSVTPT);
            }
            else
                lstVTPT.Clear();
            frm3.ShowDialog();
            if (lstVTPT.Count > 0)
            {
                if (lstVTPT.Count == 1)
                {
                    this.txtMaVTPT.Text = lstVTPT[0]._maVTPT;
                    this.lblTenVTPT.Text = lstVTPT[0]._tenVTPT;
                }
                else
                    MessageBox.Show("Có " + lstVTPT.Count.ToString() + " VTPT đang được chọn!\nVui lòng Bấm nút THÊM VÀO DS để đưa các VTPT vừa tìm kiếm vào Danh sách đặt hàng");

            }
        }

        private void txtMaVTPT_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter)
            {
                clsVAT_TU_PHU_TUNG vtptCtrl = new clsVAT_TU_PHU_TUNG(_sConn);
                VAT_TU_PHU_TUNG obj = new VAT_TU_PHU_TUNG();
                obj._maVTPT = this.txtMaVTPT.Text.Trim();
                obj = vtptCtrl.SelectVAT_TU_PHU_TUNG(obj._maVTPT, frmDangNhap.objTau.maTau);
                if (obj == null || obj._maVTPT == "")
                {
                    MessageBox.Show("KHÔNG TỒN TẠI VTPT NÀY");                    
                }
                else
                    this.lblTenVTPT.Text = obj._tenVTPT;
            }
        }

       

    }
}